
// <copyright file="AbstractDummyCommand.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   The abstract dummy command.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Data.Common
{
    using System.Data;

    /// <summary>
    /// The abstract dummy command.
    /// </summary>
    public abstract class AbstractDummyCommand : AbstractDisposable, IDbCommand
    {
        #region Public Properties

        /// <summary>
        /// Gets or sets the command text.
        /// </summary>
        public string CommandText { get; set; }

        /// <summary>
        /// Gets or sets the command timeout.
        /// </summary>
        public int CommandTimeout { get; set; }

        /// <summary>
        /// Gets or sets the command type.
        /// </summary>
        public CommandType CommandType { get; set; }

        /// <summary>
        /// Gets or sets the connection.
        /// </summary>
        public IDbConnection Connection { get; set; }

        /// <summary>
        /// Gets or sets the parameters.
        /// </summary>
        public IDataParameterCollection Parameters { get; protected set; }

        /// <summary>
        /// Gets or sets the transaction.
        /// </summary>
        public IDbTransaction Transaction { get; set; }

        /// <summary>
        /// Gets or sets the updated row source.
        /// </summary>
        public UpdateRowSource UpdatedRowSource { get; set; }

        #endregion Public Properties

        #region Public Methods and Operators

        /// <summary>
        /// The cancel.
        /// </summary>
        public void Cancel()
        {
        }

        /// <summary>
        /// The create parameter.
        /// </summary>
        /// <returns>
        /// The <see cref="IDbDataParameter"/>.
        /// </returns>
        public abstract IDbDataParameter CreateParameter();

        /// <summary>
        /// The execute non query.
        /// </summary>
        /// <returns>
        /// The <see cref="int"/>.
        /// </returns>
        public int ExecuteNonQuery()
        {
            return 0;
        }

        /// <summary>
        /// The execute reader.
        /// </summary>
        /// <param name="behavior">
        /// The behavior.
        /// </param>
        /// <returns>
        /// The <see cref="IDataReader"/>.
        /// </returns>
        public IDataReader ExecuteReader(CommandBehavior behavior)
        {
            return null;
        }

        /// <summary>
        /// The execute reader.
        /// </summary>
        /// <returns>
        /// The <see cref="IDataReader"/>.
        /// </returns>
        public IDataReader ExecuteReader()
        {
            return null;
        }

        /// <summary>
        /// The execute scalar.
        /// </summary>
        /// <returns>
        /// The <see cref="object"/>.
        /// </returns>
        public object ExecuteScalar()
        {
            return null;
        }

        /// <summary>
        /// The prepare.
        /// </summary>
        public void Prepare()
        {
        }

        #endregion Public Methods and Operators

        #region Methods

        /// <summary>
        /// The dispose.
        /// </summary>
        /// <param name="disposing">
        /// The disposing.
        /// </param>
        protected override void Dispose(bool disposing)
        {
        }

        #endregion Methods
    }
}